package main

import (
	"bufio"
	"fmt"
	"os"
	"strconv"
)

/**
取二进制数
*/
func convertToBin(n int) string {
	/**
	可以省略初始条件，相当于while
	初始条件和递增条件可以都省略只保留一个条件
	还可以什么都省略掉，一个死循环
	*/
	result := ""
	for ; n > 0; n /= 2 {
		lsb := n % 2
		result = strconv.Itoa(lsb) + result
	}
	return result
}

func readFile(filename string) {
	file, err := os.Open(filename)
	if err != nil {
		panic(err)
	}
	scanner := bufio.NewScanner(file)
	// for 只一个，左右两边都不用，那么只用条件分号都不用写了
	for scanner.Scan() {
		fmt.Println(scanner.Text()) // Text()是返回里边的一行
	}

}

func forever() {
	for {
		fmt.Println("abc")
	}
}

func main() {
	sum := 0
	for i := 1; i <= 100; i++ {
		sum += i
	}
	fmt.Println(
		sum,
		convertToBin(5),  // 101
		convertToBin(13), // 1101
		convertToBin(132178312),
		convertToBin(0),
	)

	readFile("abc.txt")
	forever()
}
